void main() {
  Person s1 = Person.withInfo('tom', 18);
  Person s2 = Person.withInfo('jack', -20);

  print("我叫${s1.name},今年${s1.age}岁");
  print("我叫${s2.name},今年${s2.age}岁");
}

class Person {
  Person(this.name, this.age);

  // 不直接创建对象，在构造函数内部通过代码来决定要创建的对象
  factory Person.withInfo(String name, int age) {
    // 如果 age<0 , Person对象默认都是0岁
    return age < 0 ? Person(name, 0) : Person(name, age);
  }

  String? name;
  int? age;
}
